Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Raw • Download


nomadnet/vendor/additional_urwid_widgets/widgets/selectable_row.py master (89e3eea1) Text, 1.67 KB

T8b949e#! /usr/bin/env python3
T8b949e# -*- coding: utf-8 -*-


Tff7b72import T7ee787urwid


Tff7b72class T56d364SelectableRowTb4b4b4(Te6edf3urwidTff7b72.Td2a8ffWidgetWrapTb4b4b4)Tb4b4b4:
T8b949e"""Wraps 'urwid.Columns' to make it selectable.
This class has been slightly modified, but essentially corresponds to this class posted on stackoverflow.com:
https://stackoverflow.com/questions/52106244/how-do-you-combine-multiple-tui-forms-to-write-more-complex-applications#answer-52174629"""

Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4, Te6edf3contentsTb4b4b4, Tff7b72*Tb4b4b4, Te6edf3alignTff7b72=Ta5d6ff"Ta5d6ffleftTa5d6ff"Tb4b4b4, Te6edf3on_selectTff7b72=Tff7b72NoneTb4b4b4, Te6edf3space_betweenTff7b72=T79c0ff2Tb4b4b4)Tb4b4b4:
T8b949e# A list-like object, where each element represents the value of a column.
Tff7b72selfTff7b72.Td2a8ffcontents Tff7b72= Te6edf3contents
Tff7b72selfTff7b72.Td2a8ff_columns Tff7b72= Te6edf3urwidTff7b72.Td2a8ffColumnsTb4b4b4(Tb4b4b4[Te6edf3urwidTff7b72.Td2a8ffTextTb4b4b4(Te6edf3cTb4b4b4, Te6edf3alignTff7b72=Te6edf3alignTb4b4b4) Tff7b72for Te6edf3c Tff7b72in Te6edf3contentsTb4b4b4]Tb4b4b4,
Te6edf3dividecharsTff7b72=Te6edf3space_betweenTb4b4b4)
T8b949e# Wrap 'urwid.Columns'.
Tffa657superTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ff__init__Tb4b4b4(Tff7b72selfTff7b72.Td2a8ff_columnsTb4b4b4)
T8b949e# A hook which defines the behavior that is executed when a specified key is pressed.
Tff7b72selfTff7b72.Td2a8ffon_select Tff7b72= Te6edf3on_select
Tff7b72def Tff7b72__repr__Tb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72return Ta5d6ff"Tffd700{}Ta5d6ff(contents=Ta5d6ff'Tffd700{}Ta5d6ff'Ta5d6ff)Ta5d6ff"Tff7b72.Td2a8ffformatTb4b4b4(Tff7b72selfTff7b72.Td2a8ff__class__Tff7b72.Td2a8ff__name__Tb4b4b4,
Tff7b72selfTff7b72.Td2a8ffcontentsTb4b4b4)
Tff7b72def Td2a8ffselectableTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72return Tff7b72True
Tff7b72def Td2a8ffkeypressTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3sizeTb4b4b4, Te6edf3keyTb4b4b4)Tb4b4b4:
Tff7b72if Tb4b4b4(Te6edf3key Tff7b72== Ta5d6ff"Ta5d6ffenterTa5d6ff"Tb4b4b4) Tff7b72and Tb4b4b4(Tff7b72selfTff7b72.Td2a8ffon_select Tff7b72is Tff7b72not Tff7b72NoneTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffon_selectTb4b4b4(Tff7b72selfTb4b4b4)
Te6edf3key Tff7b72= Tff7b72None
Tff7b72return Te6edf3key
Tff7b72def Td2a8ffset_contentsTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3contentsTb4b4b4)Tb4b4b4:
T8b949e# Update the list record inplace...
Tff7b72selfTff7b72.Td2a8ffcontentsTb4b4b4[Tb4b4b4:Tb4b4b4] Tff7b72= Te6edf3contents
T8b949e# ... and update the displayed items.
Tff7b72for Te6edf3tTb4b4b4, Tb4b4b4(Te6edf3wTb4b4b4, Te6edf3_Tb4b4b4) Tff7b72in Tffa657zipTb4b4b4(Te6edf3contentsTb4b4b4, Tff7b72selfTff7b72.Td2a8ff_columnsTff7b72.Td2a8ffcontentsTb4b4b4)Tb4b4b4:
Te6edf3wTff7b72.Td2a8ffset_textTb4b4b4(Te6edf3tTb4b4b4)


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────